/* 
 * File:   statistique.h
 * Author: landry
 *
 * Created on 10 octobre 2009, 09:07
 */

#ifndef _STATISTIQUE_H
#define	_STATISTIQUE_H

#include "evenement.h"
#include "list"



typedef struct Stat {
     Evenements event; //corespond a l'evenement qui s'est produit (arrivee ou depart de client)
    int occupied_time; // indique la duree integrale d'occupation du serveur
    int time_in_queue; // indique la duree d'attente dans la queue
    int client_queued; // indique le nombre de client restant dans la file d'attente
    int queue_length; //longueur de la file d'attente
    int nbre_serveur_occupe; // indique le nombre de serveurs occupe a un etat donnee
    std::list <Evenements> liste;
}Statistiques;




class Statistique {
public:
    Statistique();
    Statistique(const Statistique& orig);
    Statistique(Evenement event,int occupied_time, int time_in_queue,int client_queued);

    int getOccupiedTime(){ return occupied_time;}
    int getTimeInQueue(){ return time_in_queue;}
    int getClientQueued(){ return client_queued;}

    void getOccupiedTime(int occupied_time){ this->occupied_time = occupied_time;}
    void getTimeInQueue(int time_in_queue){ this->time_in_queue = time_in_queue;}
    void getClientQueued(int client_queued){ this->client_queued = client_queued;}
    void setEvenement(Evenement event){this->event = event;}

    

    virtual ~Statistique();
private:
    Evenement event; //corespond a l'evenement qui s'est produit (arrivee ou depart de client)
    int occupied_time; // indique la duree integrale d'occupation du serveur
    int time_in_queue; // indique la duree d'attente dans la queue
    int client_queued; // indique le nombre de client restant dans la file d'attente

};

#endif	/* _STATISTIQUE_H */

